Model je dogodkovni in mesečni. Vsak vnos prisotnosti/odsotnosti je dogodek (npr. Redni dopust, Bolniška do 30 dni, Nadure), ki pripada eni od treh skupin: NAD (nadure), BOL (bolniška), DOP (dopust). Dejstva so agregirana na zaposleni × mesec × dogodek; vsi kazalniki dashboarda se izpeljejo iz te oblike z grupiranjem po skupini ali šifri dogodka.
1
Katalog dogodkov — dim_event
Šifrant. event_group (BOL / DOP / NAD) je gonilo segmentacije; dashboard prikaže le dogodke s podatki.
{{ g.label }}
· {{ g.count }} dogodkov
{{ it.code }}
{{ it.name }}
{{ it.ids }}
2
Dejstvena tabela — hr_fact_event_monthly
Zrno: 1 vrstica = zaposleni × mesec × dogodek. Za mesec brez dogodka vrstice ni.
{{ r.k }}
{{ r.t }}
{{ r.d }}
3
Dimenzija zaposleni — dim_employee
Hierarhija enote je denormalizirana po nivojih (org_l4 … org_l9) — drevo in breadcrumb brez rekurzije. fte je nujen za kazalnike na FTE in planirane ure.
{{ r.k }}
{{ r.t }}
{{ r.d }}
4
Primer SQL — mesečni izpis po osebah (pivot skupin)
Parametri: :month, :unit_path, neobvezni filtri. Dogodki se zvrtijo (pivot) v stolpce po skupini.
{{ sql }}
5
Format odgovora (JSON)
Endpoint vrne 13–24 mesecev na osebo (za trende, 12-mes. povprečje, YoY) z razčlenitvijo po dogodkih za segmentacijo.
{{ json }}
6
Izpeljani kazalniki & pravila alarmov
{{ d.name }}
{{ d.formula }} — {{ d.note }}
Opomba: planirane delovne ure = Σ FTE × delovni dnevi v mesecu × 8. Dashboard prikaže zadnji zaključeni mesec privzeto in označi nezaključeni tekoči mesec (delni podatki). Izvoz v Excel (.xlsx) je na strani odjemalca; v produkciji ga lahko nadomesti strežniški izpis (PHP 7.3) iste poizvedbe.